The Discrete Cosine Transform (DCT) is commonly used in block transform image and video (sequences of images) coding, e.g., JPEG and MPEG. Among other reasons, this is because the DCT separates random signals (such as corresponding to image data) into low frequency parts of greater importance and high frequency parts of lesser importance with respect to the image's visual quality, thus facilitating compression.
By way of example, H.26L is an image and/or video codec technology that constructs frames using four-by-four blocks of pixels. Unlike MPEG and JPEG, which uses eight-by-eight blocks, H.26L obtains relatively high-quality compression with four-by-four blocks of pixels by using prediction information of existing other blocks in the same frame, (i.e., intra-frame coding), in addition to estimation and motion compensation between frames, (i.e., inter-frame coding). In general, to accomplish intra-frame prediction, an H.26L encoder, tells the corresponding H.26L decoder what other, previous block of pixels in the frame being built is being used as a basis for the prediction, along with identifying which one of six possible predictors (formulas) to use in determining the pixels for the new block (from those of the previous intra-frame block). This leads to a prediction error, which is also provided to the decoder to correct the new block. The prediction error information is encoded with the block transform (DCT) and sent encoded to the decoder, for re-computing the error information, including via an inverse transform, to correct the predicted block.
Image and video encoding or decoding takes a significant amount of processing power. As is known, an encoder typically has far more processing power than do many of the decoders that convert the data to images, as decoders are typically implemented in consumer devices. For example, image and video decoding may take place in television set-top boxes, personal digital assistants (PDAs), pocket-sized personal computers, and more advanced cellular telephones.
Thus, when considering image and video encoding and decoding methods, keeping the decoding simple is important, even if it means that encoding has to be made more computationally complex. Anything that can simplify decoding is desirable, provided that in doing so, the encoding and decoding processes do not adversely impact existing levels of compression, final image quality and the amount of other resources needed at the decoder in any substantial way relative to existing technology.